<?php

/**
 * The VehicleCore class is a controller of the Design Pattern.
 * 
 * @abstract LayoutPage
 * @author Cesar Augustus Silva <cesaraugustussilva@linuxmail.org>
 * @copyright Copyright (c) 2013, Cesar Augustus Silva
 * @license http://www.gnu.org/licenses/gpl.html GNU GPL v3.0
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <­http://www.gnu.org/licenses/>.
 */
class VehicleCore extends LayoutPage {

    /** @var stdClass The data of the vehicle */
    public static $data;
    
    /** @var array The advertiser of the vehicle */
    public static $advertiser = null;
    
    /** @var array The phones of the advertiser */
    public static $phones;
    
    /** @var array The pictures of the vehicle */
    public static $pictures;
    
    /** @var array The details of the vehicle */
    public static $details;
    
    /** @var array The differentials of the vehicle */
    public static $differentials;
    
    /** @var stdClass The prices average */
    public static $prices_average;
    
    public function setMedia() {
        parent::setMedia();
        
        Shell::addStyle('pikachoose');
        Shell::addScript(array('jquery.maskedinput.min','jquery.jcarousel.min','jquery.pikachoose.min'));
    }
    
    public function preProcess() {
        parent::preProcess();
        
        self::$data = DbGet::vehicle($_GET['id']);
        
        if ($rs = DbGet::customer_vehicle(self::$data->v_id)) {
            self::$advertiser = $rs;
            self::$phones = DbGet::phones(self::$advertiser->c_id, 'F');
        }
        else if ($rs = DbGet::enterprise_vehicle(self::$data->v_id)) {
            self::$advertiser = $rs;
            self::$phones = DbGet::phones(self::$advertiser->e_id, 'J');
        }
        
        if (!self::$data || !self::$advertiser) {
            header('Location: '.__BASE_URI__);
            exit();
        }
        
        $data = array('amountviews' => self::$data->amountviews+1);
        DbSet::vehicles($data, self::$data->v_id);
    }

    public function displayHeader() {
        global $_tag_title, $_metatag_description, $_metatag_keywords;
        
        $_tag_title = self::$data->m_name.' '.self::$data->c_name.' '.self::$data->firstreg.' | Goiautos.com.br';
        $_metatag_description = 'Somos um classificado de carros com experiência em divulgação de veículos online.';
        $_metatag_keywords = str_word_count(mb_strtolower('carros motos novos seminovos usados caminhões veículos classificados goiás quem somos', 'UTF-8'), 1, 'áéíóúàâêôçãõ0123456789');
        
        parent::displayHeader();
    }
    
    public function process() {
        parent::process();
        
        self::$pictures = DbGet::vehicle_pictures(self::$data->id);
        self::$details = DbGet::vehicle_details(self::$data->id);
        self::$differentials = DbGet::vehicle_differentials(self::$data->id);
        self::$prices_average = DbGet::vehicle_prices_average(self::$data->id_model, self::$data->firstreg, self::$data->modelyear);
    }
    
    public function displayContent() {
        parent::displayContent();
        
        Shell::addWidget(array('new-search','side-menus'), 'sidebar-left');
        Shell::showPage('vehicle');
    }

}